// 创建redux 仓库
//引入创建仓库的函数
import { legacy_createStore as createStore } from 'redux';
//配置数据的持久化
import { persistStore, persistReducer } from "redux-persist"
//导入需要配置的数据源
import storage from "redux-persist/lib/storage";


// 创建初始数据
const defaultState = {
    acl: [] // 当前用户对应的菜单数组,
}
// 创建 reducer 
const reducer = (state = defaultState, action) => {
    if (action.type == 'updateacl') {
        return {
            ...state, // 保留原数据
            acl:state.acl = action.payload
        }
    }

    return state  // 没有匹配 返回原state 数据
}

//定义配置的信息
const persitConfig = {
    key: "useracl",
    storage: storage,
    // 如果不想将部分state持久化，可以将其放入黑名单(blacklist)中.黑名单是设置
    blacklist: ['不想缓存的状态的名字']
}
//创建持久化的配置persist的信息
const persist_reducers = persistReducer(persitConfig, reducer);

// 创建仓库
const store = createStore(
    persist_reducers
)
// 使用persistor进行包裹
const persistor = persistStore(store);
//导出store和持久化工具两个对象信息
export { store, persistor };

